package com.whatever.lottery.jczq;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.whatever.lottery.util.LotUtils;

public enum Pass {
	PASS1_1,   
	PASS2_1,   
	PASS3_1,   
	PASS3_3,   
	PASS3_4,   
	PASS4_1,   
	PASS4_4,   
	PASS4_5,   
	PASS4_6,   
	PASS4_11,  
	PASS5_1,   
	PASS5_5,   
	PASS5_6,   
	PASS5_10,  
	PASS5_16,  
	PASS5_20,  
	PASS5_26,  
	PASS6_1,   
	PASS6_6,   
	PASS6_7,   
	PASS6_15,  
	PASS6_20,  
	PASS6_22,  
	PASS6_35,  
	PASS6_42,  
	PASS6_50,  
	PASS6_57, 	
	PASS7_1,   
	PASS7_7,   
	PASS7_8,   
	PASS7_21,  
	PASS7_35,  
	PASS7_120, 
	PASS8_1,   
	PASS8_8,   
	PASS8_9,   
	PASS8_28,  
	PASS8_56,  
	PASS8_70,  
	PASS8_247;
	
	static final Map<Pass, List<boolean[]>> map = new HashMap<Pass, List<boolean[]>>();
	
	static{
		List<boolean[]> list1_1 = new ArrayList<boolean[]>();
		list1_1.addAll(LotUtils.getComArrBit(1, 1));
		map.put(PASS1_1, list1_1);
		
		List<boolean[]> list2_1 = new ArrayList<boolean[]>();
		list2_1.addAll(LotUtils.getComArrBit(2, 2));
		map.put(PASS2_1, list2_1);
		
		List<boolean[]> list3_1 = new ArrayList<boolean[]>();
		list3_1.addAll(LotUtils.getComArrBit(3, 3));
		map.put(PASS3_1, list3_1);
		
		List<boolean[]> list3_3 = new ArrayList<boolean[]>();
		list3_3.addAll(LotUtils.getComArrBit(3, 2));
		map.put(PASS3_3, list3_3);
		
		List<boolean[]> list3_4 = new ArrayList<boolean[]>();
		list3_4.addAll(LotUtils.getComArrBit(3, 2));
		list3_4.addAll(LotUtils.getComArrBit(3, 3));
		map.put(PASS3_4, list3_4);
		
		List<boolean[]> list4_1 = new ArrayList<boolean[]>();
		list4_1.addAll(LotUtils.getComArrBit(4, 4));
		map.put(PASS4_1, list4_1);
		
		List<boolean[]> list4_4 = new ArrayList<boolean[]>();
		list4_4.addAll(LotUtils.getComArrBit(4, 3));
		map.put(PASS4_4, list4_4);
		
		List<boolean[]> list4_5 = new ArrayList<boolean[]>();
		list4_5.addAll(LotUtils.getComArrBit(4, 3));
		list4_5.addAll(LotUtils.getComArrBit(4, 4));
		map.put(PASS4_5, list4_5);
		
		List<boolean[]> list4_6 = new ArrayList<boolean[]>();
		list4_6.addAll(LotUtils.getComArrBit(4, 2));
		map.put(PASS4_6, list4_6);
		
		List<boolean[]> list4_11 = new ArrayList<boolean[]>();
		list4_11.addAll(LotUtils.getComArrBit(4, 2));
		list4_11.addAll(LotUtils.getComArrBit(4, 3));
		list4_11.addAll(LotUtils.getComArrBit(4, 4));
		map.put(PASS4_11, list4_11);
		
		List<boolean[]> list5_1 = new ArrayList<boolean[]>();
		list5_1.addAll(LotUtils.getComArrBit(5, 5));
		map.put(PASS5_1, list5_1);
	
		List<boolean[]> list5_5 = new ArrayList<boolean[]>();
		list5_5.addAll(LotUtils.getComArrBit(5, 4));
		map.put(PASS5_5, list5_5);
		
		List<boolean[]> list5_6 = new ArrayList<boolean[]>();
		list5_6.addAll(LotUtils.getComArrBit(5, 4));
		list5_6.addAll(LotUtils.getComArrBit(5, 5));
		map.put(PASS5_6, list5_6);
	
		List<boolean[]> list5_10 = new ArrayList<boolean[]>();
		list5_10.addAll(LotUtils.getComArrBit(5, 2));
		map.put(PASS5_10, list5_10);
	
		List<boolean[]> list5_16 = new ArrayList<boolean[]>();
		list5_16.addAll(LotUtils.getComArrBit(5, 3));
		list5_16.addAll(LotUtils.getComArrBit(5, 4));
		map.put(PASS5_16, list5_16);
	
		List<boolean[]> list5_20 = new ArrayList<boolean[]>();
		list5_20.addAll(LotUtils.getComArrBit(5, 2));
		list5_20.addAll(LotUtils.getComArrBit(5, 3));
		map.put(PASS5_20, list5_20);
	
		List<boolean[]> list5_26 = new ArrayList<boolean[]>();
		list5_26.addAll(LotUtils.getComArrBit(5, 2));
		list5_26.addAll(LotUtils.getComArrBit(5, 3));
		list5_26.addAll(LotUtils.getComArrBit(5, 4));
		list5_26.addAll(LotUtils.getComArrBit(5, 5));
		map.put(PASS5_26, list5_26);
		
		List<boolean[]> list6_1 = new ArrayList<boolean[]>();
		list6_1.addAll(LotUtils.getComArrBit(6, 6));
		map.put(PASS6_1, list6_1);
		
		List<boolean[]> list6_6 = new ArrayList<boolean[]>();
		list6_6.addAll(LotUtils.getComArrBit(6, 5));
		map.put(PASS6_6, list6_6);
		
		List<boolean[]> list6_7 = new ArrayList<boolean[]>();
		list6_7.addAll(LotUtils.getComArrBit(6, 5));
		list6_7.addAll(LotUtils.getComArrBit(6, 6));
		map.put(PASS6_7, list6_7);
		
		List<boolean[]> list6_15 = new ArrayList<boolean[]>();
		list6_15.addAll(LotUtils.getComArrBit(6, 2));
		map.put(PASS6_15, list6_15);
		
		List<boolean[]> list6_20 = new ArrayList<boolean[]>();
		list6_20.addAll(LotUtils.getComArrBit(6, 3));
		map.put(PASS6_20, list6_20);
		
		List<boolean[]> list6_22 = new ArrayList<boolean[]>();
		list6_22.addAll(LotUtils.getComArrBit(6, 4));
		list6_22.addAll(LotUtils.getComArrBit(6, 5));
		list6_22.addAll(LotUtils.getComArrBit(6, 6));
		map.put(PASS6_22, list6_22);
		
		List<boolean[]> list6_35 = new ArrayList<boolean[]>();
		list6_35.addAll(LotUtils.getComArrBit(6, 2));
		list6_35.addAll(LotUtils.getComArrBit(6, 3));
		map.put(PASS6_35, list6_35);
		
		List<boolean[]> list6_42 = new ArrayList<boolean[]>();
		list6_42.addAll(LotUtils.getComArrBit(6, 3));
		list6_42.addAll(LotUtils.getComArrBit(6, 4));
		list6_42.addAll(LotUtils.getComArrBit(6, 5));
		list6_42.addAll(LotUtils.getComArrBit(6, 6));
		map.put(PASS6_42, list6_42);
		
		List<boolean[]> list6_50 = new ArrayList<boolean[]>();
		list6_50.addAll(LotUtils.getComArrBit(6, 2));
		list6_50.addAll(LotUtils.getComArrBit(6, 3));
		list6_50.addAll(LotUtils.getComArrBit(6, 4));
		map.put(PASS6_50, list6_50);
		
		List<boolean[]> list6_57 = new ArrayList<boolean[]>();
		list6_57.addAll(LotUtils.getComArrBit(6, 2));
		list6_57.addAll(LotUtils.getComArrBit(6, 3));
		list6_57.addAll(LotUtils.getComArrBit(6, 4));
		list6_57.addAll(LotUtils.getComArrBit(6, 5));
		list6_57.addAll(LotUtils.getComArrBit(6, 6));
		map.put(PASS6_57, list6_57);
		
		List<boolean[]> list7_1 = new ArrayList<boolean[]>();
		list7_1.addAll(LotUtils.getComArrBit(7, 7));
		map.put(PASS7_1, list7_1);
	
		List<boolean[]> list7_7 = new ArrayList<boolean[]>();
		list7_7.addAll(LotUtils.getComArrBit(7, 6));
		map.put(PASS7_7, list7_7);
		
		List<boolean[]> list7_8 = new ArrayList<boolean[]>();
		list7_8.addAll(LotUtils.getComArrBit(7, 6));
		list7_8.addAll(LotUtils.getComArrBit(7, 7));
		map.put(PASS7_8, list7_8);
		
		List<boolean[]> list7_21 = new ArrayList<boolean[]>();
		list7_21.addAll(LotUtils.getComArrBit(7, 5));
		map.put(PASS7_21, list7_21);
	
		List<boolean[]> list7_35 = new ArrayList<boolean[]>();
		list7_35.addAll(LotUtils.getComArrBit(7, 4));
		map.put(PASS7_35, list7_35);
		
		List<boolean[]> list7_120 = new ArrayList<boolean[]>();
		list7_120.addAll(LotUtils.getComArrBit(7, 2));
		list7_120.addAll(LotUtils.getComArrBit(7, 3));
		list7_120.addAll(LotUtils.getComArrBit(7, 4));
		list7_120.addAll(LotUtils.getComArrBit(7, 5));
		list7_120.addAll(LotUtils.getComArrBit(7, 6));
		list7_120.addAll(LotUtils.getComArrBit(7, 7));
		map.put(PASS7_120, list7_120);
		
		List<boolean[]> list8_1 = new ArrayList<boolean[]>();
		list8_1.addAll(LotUtils.getComArrBit(8, 8));
		map.put(PASS8_1, list8_1);
		
		List<boolean[]> list8_8 = new ArrayList<boolean[]>();
		list8_8.addAll(LotUtils.getComArrBit(8, 7));
		map.put(PASS8_8, list8_8);
		
		List<boolean[]> list8_9 = new ArrayList<boolean[]>();
		list8_9.addAll(LotUtils.getComArrBit(8, 7));
		list8_9.addAll(LotUtils.getComArrBit(8, 8));
		map.put(PASS8_9, list8_9);
		
		List<boolean[]> list8_28 = new ArrayList<boolean[]>();
		list8_28.addAll(LotUtils.getComArrBit(8, 6));
		map.put(PASS8_28, list8_28);
		
		List<boolean[]> list8_56 = new ArrayList<boolean[]>();
		list8_56.addAll(LotUtils.getComArrBit(8, 5));
		map.put(PASS8_56, list8_56);
		
		List<boolean[]> list8_70 = new ArrayList<boolean[]>();
		list8_70.addAll(LotUtils.getComArrBit(8, 4));
		map.put(PASS8_70, list8_70);
		
		List<boolean[]> list8_247 = new ArrayList<boolean[]>();
		list8_247.addAll(LotUtils.getComArrBit(8, 2));
		list8_247.addAll(LotUtils.getComArrBit(8, 3));
		list8_247.addAll(LotUtils.getComArrBit(8, 4));
		list8_247.addAll(LotUtils.getComArrBit(8, 5));
		list8_247.addAll(LotUtils.getComArrBit(8, 6));
		list8_247.addAll(LotUtils.getComArrBit(8, 7));
		list8_247.addAll(LotUtils.getComArrBit(8, 8));
		map.put(PASS8_247, list8_247);
		
	}
	
	public static List<boolean[]> getSplit(Pass pass){
		return map.get(pass);
	}

}
